import axios from "axios";
import nProgress from "nprogress";
import "nprogress/nprogress.css";

// 创建axios实例
const request = axios.create({
    baseURL: "/mock", // mock js
    timeout: 5000,
});

// request拦截器
request.interceptors.request.use(
    config => {
        // 在发送请求之前做些什么
        nProgress.start(); // 进度条开始
        return config;
    },
    error => {
        // 对请求错误做些什么
        return Promise.reject(error);
    },
);

// response拦截器
request.interceptors.response.use(
    response => {
        // 对响应数据做点什么
        nProgress.done(); // 进度条结束
        if (response.data.code === 200) {
            return response.data.data;
        }
        return Promise.reject({ message: response.data.message });
    },
    error => {
        // 对响应错误做点什么
        nProgress.done(); // 进度条结束
        return Promise.reject(error);
    },
);

export default request;
